
package modelos;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MOrden {
	private Conexion conexion;
    private String Cod_Orden, Ced_Cliente, Nom_Cliente, estatus;
    private double total;

    public MOrden() {
    	
    	conexion = new Conexion(); 
    }

    public boolean registrar(){
        boolean sw = false;
        conexion.abrirConexion();
        String sql="INSERT INTO Orden (Cod_Orden, Ced_Cliente, Nom_Cliente, total ,estatus ) VALUES(?,?,?,?,?)";
        try {
        	PreparedStatement stam = conexion.getConexion().prepareStatement(sql);
            stam.setString(1, getCod_Orden());
            stam.setString(2, getCed_Cliente());
            stam.setString(3, getNom_Cliente());
            stam.setDouble(4, getTotal());
            stam.setString(5, getEstatus());
            stam.executeUpdate();
            sw = true;
        } catch (SQLException ex) {
            Logger.getLogger(MProducto.class.getName()).log(Level.SEVERE, null, ex);
        }        
        conexion.cerrarConexion();
        return sw;
    }    
/****************************************************************/
    
    public void registarProductos(Vector<String> codigos,Vector<Double> cantidades){
        conexion.abrirConexion();
        for (int i = 0; i < codigos.size(); i++) {
            String sql="INSERT INTO ProductoxOrden (cod_orden, cod_producto,Cantidad_Prod) VALUES(?,?,?)";
            try {
            	PreparedStatement stam = conexion.getConexion().prepareStatement(sql);
                stam.setString(1, getCod_Orden());
                stam.setString(2,codigos.elementAt(i));
                stam.setDouble(3, cantidades.elementAt(i));
                stam.executeUpdate();
            } catch (SQLException ex) {
                Logger.getLogger(MOrden.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        conexion.cerrarConexion();
    }

    public Vector<String []> listarProductos(){
        Vector<String []> v = new Vector<String []>();
        conexion.abrirConexion();
        String sql="SELECT Producto.desc_producto, ProductoXOrden.cantidad_prod  FROM  Producto,ProductoXOrden,Orden WHERE Orden.estatus='A' AND Producto.estatus='A' AND Producto.cod_producto=ProductoXOrden.cod_producto AND Orden.cod_orden=ProductoXOrden.cod_orden AND Orden.cod_orden=?";
        try {
            PreparedStatement stam = conexion.getConexion().prepareStatement(sql);
            stam.setString(1, getCod_Orden());
            ResultSet rs= stam.executeQuery();
            while (rs.next()){
                String [] s = new String [] {rs.getString(1), ""+rs.getDouble(2)};
                v.add(s);
            }
        } catch (SQLException ex) {
            Logger.getLogger(MProducto.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v;
  }
    public int contarOrdenes(){
        conexion.abrirConexion();
        int codigoOrden =1;
        String sql="SELECT COUNT(cod_orden) from Orden WHERE estatus='A'";
        try {
        	ResultSet rs = conexion.getConexion().createStatement().executeQuery(sql);
            while (rs.next()){
            	codigoOrden++;
            }
        } catch (SQLException ex) {
            Logger.getLogger(MProducto.class.getName()).log(Level.SEVERE, null, ex);
        }
        return codigoOrden+1;
  }


	public String getCod_Orden() {
		return Cod_Orden;
	}

	public void setCod_Orden(String cod_Orden) {
		Cod_Orden = cod_Orden;
	}

	public String getCed_Cliente() {
		return Ced_Cliente;
	}

	public void setCed_Cliente(String ced_Cliente) {
		Ced_Cliente = ced_Cliente;
	}

	public String getNom_Cliente() {
		return Nom_Cliente;
	}

	public void setNom_Cliente(String nom_Cliente) {
		Nom_Cliente = nom_Cliente;
	}

	public String getEstatus() {
		return estatus;
	}

	public void setEstatus(String estatus) {
		this.estatus = estatus;
	}

	public double getTotal() {
		return total;
	}

	public void setTotal(double total) {
		this.total = total;
	}

   
    



}
